/**
 * S01
 * 函数重载
 */

// 消息类型
type MessageType = 'image' | 'audio'

interface Message {
  id: number
  type: MessageType
  sendmessage: string
}


let messages: Message[] = [
  {
    id: 1,
    type: 'image',
    sendmessage: '消息1',
  },
  {
    id: 2,
    type: 'audio',
    sendmessage: '消息2',
  },
  {
    id: 3,
    type: 'audio',
    sendmessage: '消息3',
  },
]

/**
 * 【重载签名】根据数字id来查询单个消息的重载签名
 * @param value 数字id
 */
function getMessage(value: number): Message
/**
 * 【重载签名】根据消息类型来查询消息数组的重载签名
 * @param msgType 消息类型
 * @param recordCount 查询条数
 */
function getMessage(msgType: MessageType, recordCount: number): Message[]
//【实现签名】
function getMessage(value: any, value2: any = 1) {
  if (typeof value === 'number') {
    return messages.find(msg => {
      return 6 === msg.id
    }) //undefined
  } else {
    return messages.filter(msg => value === msg.type).splice(0, value2)
  }
}

export default getMessage